1. Field of the Invention
The present invention relates to personal computer systems, more particularly to computer systems utilizing programmable option select system configuration, wherein upon power up or reset the system automatically executes an initialization sequence to establish the configuration of peripheral devices or expansion circuit boards which are user specified.
2. Description of the Prior Art
Personal computers have evolved since the introduction of early models based upon the Intel 8088 microprocessor. This microprocessor formed the basis for the International Business Machine Corporation PC as well as other IBM compatible machines. As the popularity of personal computers rose, so did the demand for more advanced features, system capacity and speed. This ever-increasing demand led to the development of higher order microprocessors such as the Intel 80286 and 80386.
These later integrated circuit microprocessors formed the basis for the IBM XT and AT model personal computers as well as other IBM compatible machines such as the COMPAQ Desk Pro models. With the introduction of higher order microprocessors came demand for increased system expansion capability, more efficient data handling, communications and memory addressing. In response to these demands the personal computing industry has grown to include numerous system expansion modules or peripheral devices such as modems, printers, hard and floppy disk drives, memory expansion boards, networking expansion boards and the like. All of these demands led to the development of more efficient and capable system architectures such as the Extended Industry Standard Architecture utilized by COMPAQ and others, and the Micro Channel Architecture (MCA) used by IBM.
One of the features provided by the MCA was the ability to initialize circuit board parameters entirely by program control, without the need to set any jumpers or switches. This feature was called Programmable Option Select (POS) and utilized certain defined input/output (I/O) space locations or ports to control which circuit boards or adapters were being configured and where configuration information was to be located. A circuit board was configured by first selecting which circuit board location was to be addressed and placing the circuit board in setup or configuration mode. The configuration information was then loaded and setup mode exited.
Because of the large market share of the IBM compatible machines, it is highly desirable that personal computing systems and application software maintain compatibility with the MCA Personal Systems computers. Nevertheless, in the time that such systems have been available, it has become apparent that the MCA systems have inherent limitations which prevent full utilization of the capabilities of the INTEL 80386 microprocessor. One such inherent limitation is imposed by the design of the MCA system which limits the addressability of static memory used to store system configuration data through the Programmable Option Select feature to a relatively small 2048 bytes or 2K allocation. Another inherent MCA system limitation restricts the number of programmable expansion slots for any MCA system to eight. The present invention alleviates these inherent limitations, among others, while maintaining full compatibility with MCA software to more fully utilize the capabilities of the 80386 microprocessor.
In MCA systems, the programmable option select feature eliminates switches from system boards and adapters for identification and configuration purposes. Instead of switches, these functions are performed by a set of programmable registers or latches located on the system board and the adapter boards. In an MCA system, an adapter description file, or ADF, is maintained for each adapter in system CMOS or static memory. At power up, the system initialization sequence causes the POS registers on the system board and adapters to be read and compared for matching data in the ADF. Thereafter, if the system identification configuration data has changed, an initialization sequence is executed and the system is reconfigured. The new system configuration data is then stored in CMOS static memory with the adapter identification numbers.
In MCA systems, adapters and system board set up functions share input/output addresses 0100h through 0l07h. Unless otherwise noted, all references in the present application to addresses will be hexadecimal format, and the "h" designation will be omitted. These addresses are accessed through programmable option select control port 0094 for the system board and 0096 for the adapters. In other words system board and adapter set up functions respond to instructions in addresses 0100-0107 only when special device setup signals in IO ports 0094 and 0096 are active. After setup, I/O addresses or ports 0094 and 0096 are set to the values FF and 00, respectively, and system configuration POS registers cannot be accessed unless the machine is in setup mode. The following chart shows the organization of the input/output address space used by IBM MCA systems for the programmable option select feature:
______________________________________ Address (h) Function ______________________________________ 0094 System Board Enable/Setup Register 0095 Reserved 0096 Adapter Enable/Setup Register 0097 Reserved 0100 POS Register 0 - Adapter Identification Byte (LSB) 0101 POS Register 1 - Adapter Identification Byte (MSB) 0102 POS Register 2 - Option Select Data Byte 1 Bit 0 designated Card Enable 0103 POS Register 3 - Option Select Data Byte 2 0104 POS Register 4 - Option Select Data Byte 3 0105 POS Register 5 - Option Select Data Byte 4, Bit 7 Designated as "Check", Bit 6 Reserved 0106 POS Register 6 - Subaddress Extension (Least Significant Byte) 0107 POS Register 7 - Subaddress Extension (Most Significant Byte) ______________________________________
Bits 6 and 7 of address 0105 and bit 0 of address 102 are fixed, all others in the field 0102 through 0105 are free form.
In IBM MCA systems, i.e., the Personal System Model 80, upon power up, the system executes a programmable option select power on self test sequence, wherein configuration of the system board and adapters is verified. The system board configuration is verified by providing the appropriate set up enabling (low) signals via POS register 094 bits 7, 5 for the system board and graphics subsystem (VGA). With respect to the system board, POS registers 100, 101 are read only and in IBM systems are hardwired with register 100 fixed at hex value FF and 101 fixed to a given system configuration identification value which identifies the model and specific features of the system in question.
Set up of the diskette drive controller and serial and parallel interfaces are controlled through POS register 102. System memory, consisting of one or two 1 megabyte RAM units, is set up via POS register 103 whereby memory division, refresh rate and capacity are defined.
Setup or configuration of adapters used in MCA systems is implemented in essentially the same fashion as the system board, with the exception that each adapter responds to setup only when a unique card setup signal is active. A unique card setup signal is provided by decoding bits 0, 1, 2 and 3 of the 8 bit I/O port address 096. In the IBM MCA system, bit 7 of byte 096 is utilized for channel reset, bits 4, 5 and 6 are set equal to one when read and bit 3 is decoded to discriminate between a system setup enable (low) and an adapter setup enable (high). This design imposes a limitation on the number of uniquely identifiable adapters to eight, the number which can be uniquely identified via bits 0, 1 and 2 of byte 096. The system of the present invention maintains compatibility with this scheme and permits expansion of the number of uniquely indentifiable adapters in the manner described herein.
Furthermore, as implemented by IBM, MCA POS machines utilize a battery-backed CMOS RAM for system configuration data accessible by the POS sequences which is physically limited to 2048 bytes or 2K bytes. Such a physical limitation is undesirable, particularly where, as in the system of the present invention, the number of addressable adapter slots is increased and other enhanced features accessible through a POS sequence are provided. The system of the present invention therefore provides a means for enhancing the POS addressable memory when in enhanced operation and of restricting access to such enhanced memory when full IBM emulation is required.
Further information concerning the IBM Personal System/2, the MCA architecture and POS feature can be found in the IBM Personal System/2 Model 80 Technical Reference Manual, having a copyright date of 1987 and a product number of 84.times.1508.